home *** CD-ROM | disk | FTP | other *** search
/ OpenGL Superbible (2nd Edition) / OpenGL SuperBible e2.iso / tools / GLUT-3.7 / LIB / GLUT / glut_swidth.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-12  |  1.1 KB  |  59 lines

  1.  
  2. /* Copyright (c) Mark J. Kilgard, 1995. */
  3.  
  4. /* This program is freely distributable without licensing fees 
  5.    and is provided without guarantee or warrantee expressed or 
  6.    implied. This program is -not- in the public domain. */
  7.  
  8. #include "glutint.h"
  9. #include "glutstroke.h"
  10.  
  11. /* CENTRY */
  12. int APIENTRY 
  13. glutStrokeWidth(GLUTstrokeFont font, int c)
  14. {
  15.   StrokeFontPtr fontinfo;
  16.   const StrokeCharRec *ch;
  17.  
  18. #if defined(_WIN32)
  19.   fontinfo = (StrokeFontPtr) __glutFont(font);
  20. #else
  21.   fontinfo = (StrokeFontPtr) font;
  22. #endif
  23.  
  24.   if (c < 0 || c >= fontinfo->num_chars)
  25.     return 0;
  26.   ch = &(fontinfo->ch[c]);
  27.   if (ch)
  28.     return ch->right;
  29.   else
  30.     return 0;
  31. }
  32.  
  33. int APIENTRY 
  34. glutStrokeLength(GLUTstrokeFont font, const unsigned char *string)
  35. {
  36.   int c, length;
  37.   StrokeFontPtr fontinfo;
  38.   const StrokeCharRec *ch;
  39.  
  40. #if defined(_WIN32)
  41.   fontinfo = (StrokeFontPtr) __glutFont(font);
  42. #else
  43.   fontinfo = (StrokeFontPtr) font;
  44. #endif
  45.  
  46.   length = 0;
  47.   for (; *string != '\0'; string++) {
  48.     c = *string;
  49.     if (c >= 0 && c < fontinfo->num_chars) {
  50.       ch = &(fontinfo->ch[c]);
  51.       if (ch)
  52.         length += ch->right;
  53.     }
  54.   }
  55.   return length;
  56. }
  57.  
  58. /* ENDCENTRY */
  59.